#include "check.h"

uint8_t calculate_sum_check(uint8_t* data, uint32_t length) {
    uint8_t sum = 0;
    for (uint32_t i = 0; i < length; i++) {
        sum += data[i];
    }
    return sum;
}


uint8_t parse_checkCode(const char* check_code_str) {
    // 跳过 "0x" 前缀（如果存在）
    if (check_code_str[0] == '0' && (check_code_str[1] == 'x' || check_code_str[1] == 'X')) {
        check_code_str += 2;
    }
    /*
     * unsigned long strtoul(const char *str, char **endptr, int base);
              ​​参数说明​​：
            str：要转换的字符串（如 "2E"）。
            endptr：通常设为 NULL（表示不返回终止位置）。
            base：进制基数，16 表示按十六进制解析。
     */
    return (uint8_t)strtoul(check_code_str, NULL, 16);
}


